/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sorting;

import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;


/**
 *
 * @author OAKLAND
 */
public class Archive {
     
      
     
    /*
     * Nombre: Write
     * descripcion: imprime una lista de enteros que se le mande y cuantos elementos se desea imprimir en una archivo
     * parametros:
     *      String name; para el nombre del archivo
     *      int[] lista; que lista va a imprimir en el archivo
     *      int n;       cuantos elementos de la lista imprimirá 
     */
    public void Write(String name, Comparable[] lista, int n){
        FileWriter fichero = null;               //se declara un fichero, (nombre del archivo)
        PrintWriter pw = null;                  //se declara un print writer, (funciones de impresion de archivos)
        try
        {
            fichero = new FileWriter(name);     //se crea el archivo
            pw = new PrintWriter(fichero);      //se indica que archivo se operará

            for (int i = 0; i < n; i++){
                pw.println("" + lista[i]);      //se imprime la lista en el archivo
            }
            

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
           try {
           // Nuevamente aprovechamos el finally para 
           // asegurarnos que se cierra el fichero.
           if (null != fichero)
              fichero.close();                  //se cierra el archivo
           } catch (Exception e2) {
              e2.printStackTrace();
           }
        }
    }//fin de clase write
   
    /*
     * Nombre: Read
     * pre: el archivo esta en un formato de numero por linea
     * descripcion: lee un archivo especificando su nombre
     * parametros:
     *      String name; para el nombre del archivo
     *      int n;       cuantos elementos de la lista se leerán
     */
    
    public Comparable[] Read(String name, int n) throws IOException{
        Comparable[] lista= new Comparable[n]; 
        File archivo = new File(name);
        try {
            FileReader fr = new FileReader (archivo);       //se indica qué archivo se leerá
            BufferedReader br = new BufferedReader(fr);     //se prepara para hacerle operaciones
            
                for(int i=0;i<n;i++){
                    lista[i]=Integer.parseInt(br.readLine());   //se lee cada linea del archivo
                }
            JOptionPane.showMessageDialog(null ,"Operación realizada exitosamente. :)" );
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Archive.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, "Archivo no existe", "ERROR", JOptionPane.ERROR_MESSAGE);
        }
         return lista;                                      //retorna la lista leida
    }
    
    
}
